@@ -3,9 +3,9 @@ |
||
3 | 3 |
from django.contrib.auth.models import Group, User |
4 | 4 |
from django.db import transaction |
5 | 5 |
from django_curtail_uuid import CurtailUUID |
6 |
+from django_logit import logit |
|
6 | 7 |
from django_response import response |
7 | 8 |
from ipaddr import client_ip |
8 |
-from logit import logit |
|
9 | 9 |
from rest_framework import viewsets |
10 | 10 |
from TimeConvert import TimeConvert as tc |
11 | 11 |
|
@@ -1,8 +1,8 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from djadmin import ChangeOnlyModelAdmin, ReadOnlyModelAdmin |
|
4 | 3 |
from django.contrib import admin |
5 | 4 |
from django.db import transaction |
5 |
+from django_admin import ChangeOnlyModelAdmin, ReadOnlyModelAdmin |
|
6 | 6 |
from django_curtail_uuid import CurtailUUID |
7 | 7 |
|
8 | 8 |
from account.models import LensmanIncomeExpensesInfo, LensmanInfo, TourGuideInfo, UserIncomeExpensesInfo, UserInfo |
@@ -2,8 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from django.db import models |
4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
5 |
+from django_models_ext import BaseModelMixin |
|
5 | 6 |
from jsonfield import JSONField |
6 |
-from models_ext import BaseModelMixin |
|
7 | 7 |
|
8 | 8 |
from pai2.basemodels import LensmanTypeBoolMixin, LensmanTypeMixin |
9 | 9 |
|
@@ -4,8 +4,8 @@ from __future__ import division |
||
4 | 4 |
|
5 | 5 |
from django.conf import settings |
6 | 6 |
from django.db import transaction |
7 |
+from django_logit import logit |
|
7 | 8 |
from django_response import response |
8 |
-from logit import logit |
|
9 | 9 |
|
10 | 10 |
from account.models import TourGuideInfo, UserInfo |
11 | 11 |
from utils.error.errno_utils import TourGuideStatusCode |
@@ -5,8 +5,8 @@ from __future__ import division |
||
5 | 5 |
import json |
6 | 6 |
import random |
7 | 7 |
|
8 |
+from django_logit import logit |
|
8 | 9 |
from django_response import response |
9 |
-from logit import logit |
|
10 | 10 |
|
11 | 11 |
from mch.models import BrandInfo, ModelImageInfo, ModelInfo |
12 | 12 |
from utils.algorithm.b64 import b64_decrypt, b64_encrypt |
@@ -3,8 +3,8 @@ |
||
3 | 3 |
from __future__ import division |
4 | 4 |
|
5 | 5 |
from django.contrib.auth.hashers import check_password, make_password |
6 |
+from django_logit import logit |
|
6 | 7 |
from django_response import response |
7 |
-from logit import logit |
|
8 | 8 |
|
9 | 9 |
from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelInfo, OperatorInfo |
10 | 10 |
from utils.error.errno_utils import OperatorStatusCode |
@@ -1,7 +1,7 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+from django_logit import logit |
|
3 | 4 |
from django_response import response |
4 |
-from logit import logit |
|
5 | 5 |
|
6 | 6 |
from account.models import UserInfo |
7 | 7 |
from utils.error.errno_utils import LensmanStatusCode, TokenStatusCode |
@@ -5,8 +5,8 @@ from __future__ import division |
||
5 | 5 |
import json |
6 | 6 |
|
7 | 7 |
from django.core.serializers.json import DjangoJSONEncoder |
8 |
+from django_logit import logit |
|
8 | 9 |
from django_response import response |
9 |
-from logit import logit |
|
10 | 10 |
from TimeConvert import TimeConvert as tc |
11 | 11 |
|
12 | 12 |
from utils.error.errno_utils import GroupUserStatusCode |
@@ -1,7 +1,7 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from djadmin import ReadOnlyModelAdmin |
|
4 | 3 |
from django.contrib import admin |
4 |
+from django_admin import ReadOnlyModelAdmin |
|
5 | 5 |
|
6 | 6 |
from group.models import (GroupInfo, GroupPhotoInfo, GroupPhotoOrderInfo, GroupUserInfo, PhotoCommentInfo, |
7 | 7 |
PhotoThumbUpInfo) |
@@ -5,8 +5,8 @@ from __future__ import division |
||
5 | 5 |
from django.conf import settings |
6 | 6 |
from django.db import connection, transaction |
7 | 7 |
from django_curtail_uuid import CurtailUUID |
8 |
+from django_logit import logit |
|
8 | 9 |
from django_response import response |
9 |
-from logit import logit |
|
10 | 10 |
from paginator import pagination |
11 | 11 |
from rest_framework import viewsets |
12 | 12 |
from TimeConvert import TimeConvert as tc |
@@ -4,7 +4,7 @@ from __future__ import division |
||
4 | 4 |
|
5 | 5 |
from django.conf import settings |
6 | 6 |
from django.shortcuts import render |
7 |
-from logit import logit |
|
7 |
+from django_logit import logit |
|
8 | 8 |
|
9 | 9 |
from group.models import GroupPhotoInfo |
10 | 10 |
|
@@ -2,8 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from __future__ import division |
4 | 4 |
|
5 |
+from django_logit import logit |
|
5 | 6 |
from django_response import response |
6 |
-from logit import logit |
|
7 | 7 |
from TimeConvert import TimeConvert as tc |
8 | 8 |
|
9 | 9 |
from account.models import UserInfo |
@@ -4,10 +4,10 @@ from __future__ import division |
||
4 | 4 |
|
5 | 5 |
from django.db import transaction |
6 | 6 |
from django_curtail_uuid import CurtailUUID |
7 |
+from django_logit import logit |
|
7 | 8 |
from django_response import response |
8 | 9 |
from ipaddr import client_ip |
9 | 10 |
from isoweek import Week |
10 |
-from logit import logit |
|
11 | 11 |
from paginator import pagination |
12 | 12 |
from TimeConvert import TimeConvert as tc |
13 | 13 |
|
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from django.db import models |
4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
5 |
-from models_ext import BaseModelMixin |
|
5 |
+from django_models_ext import BaseModelMixin |
|
6 | 6 |
from shortuuidfield import ShortUUIDField |
7 | 7 |
from TimeConvert import TimeConvert as tc |
8 | 8 |
|
@@ -8,8 +8,8 @@ import shortuuid |
||
8 | 8 |
from django.conf import settings |
9 | 9 |
from django.core.serializers.json import DjangoJSONEncoder |
10 | 10 |
from django_curtail_uuid import CurtailUUID |
11 |
+from django_logit import logit |
|
11 | 12 |
from django_response import response |
12 |
-from logit import logit |
|
13 | 13 |
from TimeConvert import TimeConvert as tc |
14 | 14 |
|
15 | 15 |
from account.models import UserInfo |
@@ -2,8 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from __future__ import division |
4 | 4 |
|
5 |
+from django_logit import logit |
|
5 | 6 |
from django_response import response |
6 |
-from logit import logit |
|
7 | 7 |
|
8 | 8 |
from group.models import GroupUserInfo |
9 | 9 |
from utils.admin_utils import is_group_admin |
@@ -6,8 +6,8 @@ import json |
||
6 | 6 |
|
7 | 7 |
from django.conf import settings |
8 | 8 |
from django.db import transaction |
9 |
+from django_logit import logit |
|
9 | 10 |
from django_response import response |
10 |
-from logit import logit |
|
11 | 11 |
from TimeConvert import TimeConvert as tc |
12 | 12 |
|
13 | 13 |
from account.models import UserInfo |
@@ -1,9 +1,9 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from djadmin import DeleteModelAdmin, ReadOnlyModelAdmin |
|
4 | 3 |
from django.conf import settings |
5 | 4 |
from django.contrib import admin |
6 | 5 |
from django.contrib.auth.hashers import check_password, make_password |
6 |
+from django_admin import DeleteModelAdmin, ReadOnlyModelAdmin |
|
7 | 7 |
from pysnippets.strsnippets import strip |
8 | 8 |
|
9 | 9 |
from mch.models import (BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelImageInfo, ModelInfo, |
@@ -3,7 +3,7 @@ |
||
3 | 3 |
from __future__ import unicode_literals |
4 | 4 |
|
5 | 5 |
from django.db import migrations, models |
6 |
-import models_ext.fileext |
|
6 |
+import django_models_ext.fileext |
|
7 | 7 |
|
8 | 8 |
|
9 | 9 |
class Migration(migrations.Migration): |
@@ -21,7 +21,7 @@ class Migration(migrations.Migration): |
||
21 | 21 |
('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')), |
22 | 22 |
('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')), |
23 | 23 |
('model_id', models.CharField(blank=True, db_index=True, help_text='\u578b\u53f7\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='model_id')), |
24 |
- ('image', models.ImageField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='image')), |
|
24 |
+ ('image', models.ImageField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='image')), |
|
25 | 25 |
('url', models.TextField(blank=True, help_text='\u94fe\u63a5', max_length=255, null=True, verbose_name='url')), |
26 | 26 |
('position', models.IntegerField(default=1, help_text='\u6392\u5e8f', verbose_name='position')), |
27 | 27 |
], |
@@ -33,7 +33,7 @@ class Migration(migrations.Migration): |
||
33 | 33 |
migrations.AddField( |
34 | 34 |
model_name='brandinfo', |
35 | 35 |
name='brand_logo', |
36 |
- field=models.ImageField(blank=True, help_text='\u54c1\u724c\u5546\u6807', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='brand_logo'), |
|
36 |
+ field=models.ImageField(blank=True, help_text='\u54c1\u724c\u5546\u6807', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='brand_logo'), |
|
37 | 37 |
), |
38 | 38 |
migrations.AddField( |
39 | 39 |
model_name='distributorinfo', |
@@ -3,7 +3,7 @@ |
||
3 | 3 |
from __future__ import unicode_literals |
4 | 4 |
|
5 | 5 |
from django.db import migrations, models |
6 |
-import models_ext.fileext |
|
6 |
+import django_models_ext.fileext |
|
7 | 7 |
|
8 | 8 |
|
9 | 9 |
class Migration(migrations.Migration): |
@@ -22,7 +22,7 @@ class Migration(migrations.Migration): |
||
22 | 22 |
('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')), |
23 | 23 |
('latest_adr_version_code', models.IntegerField(default=0, help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u53f7', verbose_name='latest_adr_version_code')), |
24 | 24 |
('latest_adr_version_name', models.CharField(blank=True, help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u540d', max_length=16, null=True, verbose_name='latest_adr_version_name')), |
25 |
- ('latest_adr_app', models.FileField(blank=True, help_text='\u6700\u65b0\u7248\u5b89\u5353 APP', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='latest_adr_app')), |
|
25 |
+ ('latest_adr_app', models.FileField(blank=True, help_text='\u6700\u65b0\u7248\u5b89\u5353 APP', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='latest_adr_app')), |
|
26 | 26 |
('latest_adr_url', models.URLField(blank=True, help_text='\u6700\u65b0\u7248 APP \u94fe\u63a5', max_length=255, null=True, verbose_name='latest_adr_url')), |
27 | 27 |
('latest_ios_version_code', models.IntegerField(default=0, help_text='\u6700\u65b0 iOS \u7248\u672c\u53f7', verbose_name='latest_ios_version_code')), |
28 | 28 |
('latest_ios_version_name', models.CharField(blank=True, help_text='\u6700\u65b0 iOS \u7248\u672c\u540d', max_length=16, null=True, verbose_name='latest_ios_version_name')), |
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from django.db import models |
4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
5 |
-from models_ext import BaseModelMixin, upload_file_url, upload_path |
|
5 |
+from django_models_ext import BaseModelMixin, upload_file_url, upload_path |
|
6 | 6 |
from shortuuidfield import ShortUUIDField |
7 | 7 |
|
8 | 8 |
|
@@ -1,7 +1,7 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from djadmin import ReadOnlyModelAdmin |
|
4 | 3 |
from django.contrib import admin |
4 |
+from django_admin import ReadOnlyModelAdmin |
|
5 | 5 |
|
6 | 6 |
from message.models import SystemMessageDeleteInfo, SystemMessageInfo, SystemMessageReadInfo, UserMessageInfo |
7 | 7 |
|
@@ -3,7 +3,7 @@ |
||
3 | 3 |
from django.conf import settings |
4 | 4 |
from django.db import models |
5 | 5 |
from django.utils.translation import ugettext_lazy as _ |
6 |
-from models_ext import BaseModelMixin |
|
6 |
+from django_models_ext import BaseModelMixin |
|
7 | 7 |
from TimeConvert import TimeConvert as tc |
8 | 8 |
|
9 | 9 |
from group.models import GroupPhotoInfo |
@@ -1,8 +1,8 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 | 3 |
from django.conf import settings |
4 |
+from django_logit import logit |
|
4 | 5 |
from django_response import response |
5 |
-from logit import logit |
|
6 | 6 |
from paginator import pagination |
7 | 7 |
|
8 | 8 |
from account.models import UserInfo |
@@ -3,9 +3,9 @@ |
||
3 | 3 |
from django.conf import settings |
4 | 4 |
from django.db import transaction |
5 | 5 |
from django_curtail_uuid import CurtailUUID |
6 |
+from django_logit import logit |
|
6 | 7 |
from django_response import response |
7 | 8 |
from ipaddr import client_ip |
8 |
-from logit import logit |
|
9 | 9 |
from pywe_miniapp import get_userinfo |
10 | 10 |
from TimeConvert import TimeConvert as tc |
11 | 11 |
|
@@ -1,9 +1,9 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from djadmin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin |
|
4 | 3 |
from django.conf import settings |
5 | 4 |
from django.contrib import admin |
6 | 5 |
from django.template.loader import render_to_string |
6 |
+from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin |
|
7 | 7 |
from pysnippets.strsnippets import strip |
8 | 8 |
|
9 | 9 |
from operation.models import (APPSettingsInfo, BoxProgramVersionInfo, FeedbackInfo, GuestEntranceControlInfo, |
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from django.db import models |
4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
5 |
-from models_ext import BaseModelMixin, upload_file_url, upload_path |
|
5 |
+from django_models_ext import BaseModelMixin, upload_file_url, upload_path |
|
6 | 6 |
|
7 | 7 |
from pai2.basemodels import PaiaiSrcMixin, PlatformMixin, VersionMixin |
8 | 8 |
|
@@ -4,8 +4,8 @@ import os |
||
4 | 4 |
|
5 | 5 |
from django.conf import settings |
6 | 6 |
from django.shortcuts import redirect |
7 |
+from django_logit import logit |
|
7 | 8 |
from django_response import response |
8 |
-from logit import logit |
|
9 | 9 |
|
10 | 10 |
from account.models import UserInfo |
11 | 11 |
from operation.models import FeedbackInfo, GuestEntranceControlInfo, LatestAppInfo, SplashInfo |
@@ -44,11 +44,10 @@ INSTALLED_APPS = ( |
||
44 | 44 |
'django.contrib.messages', |
45 | 45 |
'django.contrib.staticfiles', |
46 | 46 |
'rest_framework', |
47 |
- # 'django_q', |
|
48 |
- 'django_rlog', |
|
49 | 47 |
'django_uniapi', |
48 |
+ 'django_admin', |
|
49 |
+ 'django_rlog', |
|
50 | 50 |
'django_we', |
51 |
- 'djadmin', |
|
52 | 51 |
'api', |
53 | 52 |
'account', |
54 | 53 |
'box', |
@@ -1,7 +1,7 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from djadmin import ReadOnlyModelAdmin |
|
4 | 3 |
from django.contrib import admin |
4 |
+from django_admin import ReadOnlyModelAdmin |
|
5 | 5 |
|
6 | 6 |
from pay.models import OrderInfo |
7 | 7 |
|
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from django.db import models |
4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
5 |
-from models_ext import BaseModelMixin |
|
5 |
+from django_models_ext import BaseModelMixin |
|
6 | 6 |
from shortuuidfield import ShortUUIDField |
7 | 7 |
from TimeConvert import TimeConvert as tc |
8 | 8 |
|
@@ -3,8 +3,8 @@ |
||
3 | 3 |
from django.conf import settings |
4 | 4 |
from django.db import transaction |
5 | 5 |
from django.shortcuts import HttpResponse |
6 |
+from django_logit import logit |
|
6 | 7 |
from django_response import response |
7 |
-from logit import logit |
|
8 | 8 |
from paginator import pagination |
9 | 9 |
from pywe_exception import WeChatPayException |
10 | 10 |
from pywe_pay import WeChatPay |
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from django.db import models |
4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
5 |
-from models_ext import BaseModelMixin |
|
5 |
+from django_models_ext import BaseModelMixin |
|
6 | 6 |
|
7 | 7 |
from utils.qiniucdn import qiniu_file_url |
8 | 8 |
|
@@ -3,10 +3,10 @@ |
||
3 | 3 |
from django.db import transaction |
4 | 4 |
from django.shortcuts import render |
5 | 5 |
from django_curtail_uuid import CurtailUUID |
6 |
+from django_logit import logit |
|
6 | 7 |
# from django_q.tasks import async |
7 | 8 |
from django_response import response |
8 | 9 |
from ipaddr import client_ip |
9 |
-from logit import logit |
|
10 | 10 |
from rest_framework import viewsets |
11 | 11 |
from TimeConvert import TimeConvert as tc |
12 | 12 |
|
@@ -5,25 +5,26 @@ Pillow==5.0.0 |
||
5 | 5 |
StatusCode==1.0.0 |
6 | 6 |
TimeConvert==1.4.3 |
7 | 7 |
cryptography==1.5.2 |
8 |
-django-admin==1.1.1 |
|
8 |
+django-admin==1.2.0 |
|
9 | 9 |
django-curtail-uuid==1.0.4 |
10 | 10 |
django-detect==1.0.5 |
11 |
-django-file-md5==1.0.1 |
|
11 |
+django-file-md5==1.0.2 |
|
12 |
+django-file-upload==1.0.1 |
|
12 | 13 |
django-ip==1.0.2 |
13 | 14 |
django-json-render==1.0.0 |
14 | 15 |
django-json-response==1.1.5 |
15 |
-django-logit==1.0.8 |
|
16 |
+django-logit==1.1.2 |
|
16 | 17 |
django-mobi==0.1.7 |
17 |
-django-models-ext==1.1.0 |
|
18 |
+django-models-ext==1.1.1 |
|
18 | 19 |
django-multidomain==1.1.4 |
19 | 20 |
django-paginator2==1.0.3 |
20 | 21 |
django-redis-connector==1.0.1 |
21 |
-django-response==1.0.2 |
|
22 |
+django-response==1.1.1 |
|
22 | 23 |
django-rlog==1.0.7 |
23 | 24 |
django-shortuuidfield==0.1.3 |
24 | 25 |
django-six==1.0.4 |
25 | 26 |
django-uniapi==1.0.1 |
26 |
-django-we==1.1.4 |
|
27 |
+django-we==1.2.1 |
|
27 | 28 |
djangorestframework==3.7.7 |
28 | 29 |
furl==1.0.1 |
29 | 30 |
hiredis==0.2.0 |
@@ -32,12 +33,13 @@ jsonfield==2.0.2 |
||
32 | 33 |
mock==2.0.0 |
33 | 34 |
pysnippets==1.0.5 |
34 | 35 |
pywe-jssdk==1.0.2 |
36 |
+pywe-membercard==1.0.0 |
|
35 | 37 |
pywe-miniapp==1.0.2 |
36 | 38 |
pywe-oauth==1.0.6 |
37 | 39 |
pywe-pay==1.0.11 |
38 |
-pywe-pay-notify==1.0.1 |
|
40 |
+pywe-pay-notify==1.0.4 |
|
39 | 41 |
pywe-response==1.0.1 |
40 |
-pywe-sign==1.0.6 |
|
42 |
+pywe-sign==1.0.7 |
|
41 | 43 |
pywe-xml==1.0.0 |
42 | 44 |
qiniu==7.2.0 |
43 | 45 |
redis==2.10.6 |
@@ -46,5 +48,4 @@ requests==2.18.4 |
||
46 | 48 |
rlog==0.3 |
47 | 49 |
rsa==3.4.2 |
48 | 50 |
shortuuid==0.5.0 |
49 |
-uWSGI==2.0.15 |
|
50 | 51 |
versions==0.10.0 |
@@ -1,7 +1,7 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+from django_logit import logit |
|
3 | 4 |
from django_response import response |
4 |
-from logit import logit |
|
5 | 5 |
from TimeConvert import TimeConvert as tc |
6 | 6 |
|
7 | 7 |
|
@@ -1,6 +1,6 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-from filemd5 import calculate_md5 |
|
3 |
+from django_file_md5 import calculate_md5 |
|
4 | 4 |
|
5 | 5 |
from utils.redis.connect import r |
6 | 6 |
|
@@ -6,7 +6,7 @@ import shortuuid |
||
6 | 6 |
from django.conf import settings |
7 | 7 |
from django.core.files.storage import default_storage |
8 | 8 |
from django.db import transaction |
9 |
-from filemd5 import calculate_md5 |
|
9 |
+from django_file_md5 import calculate_md5 |
|
10 | 10 |
|
11 | 11 |
from photo.models import PhotoUUIDInfo |
12 | 12 |
from utils.qiniucdn import upload_file_path |
@@ -6,7 +6,7 @@ import shortuuid |
||
6 | 6 |
from django.conf import settings |
7 | 7 |
from django.core.files.storage import default_storage |
8 | 8 |
from django.db import transaction |
9 |
-from filemd5 import calculate_md5 |
|
9 |
+from django_file_md5 import calculate_md5 |
|
10 | 10 |
|
11 | 11 |
from photo.models import PhotoUUIDInfo |
12 | 12 |
from utils.thumbnail_utils import make_thumbnail |